home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ewl / ewl_enums.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  11KB  |  425 lines

  1. #ifndef __EWL_ENUMS_H__
  2. #define __EWL_ENUMS_H__
  3.  
  4. /**
  5.  * @file ewl_enums.h
  6.  * @defgroup Ewl_Enums Enums: Various Flags and Enumerations used in EWL
  7.  * Provides bitmasks, flags, and other enumerations for use by widgets in EWL.
  8.  *
  9.  * @{
  10.  */
  11.  
  12. /**
  13.  * @enum Ewl_Callback_Type
  14.  * This defines the various types of callbacks that can be hooked up for each
  15.  * widget.
  16.  */
  17. enum Ewl_Callback_Type
  18. {
  19.     EWL_CALLBACK_EXPOSE, /**< Triggered when the window needs redrawing */
  20.     EWL_CALLBACK_REALIZE, /**< Event when a widget is first drawn */
  21.     EWL_CALLBACK_UNREALIZE, /**< When a widget is no longer drawn */
  22.     EWL_CALLBACK_SHOW, /**< A widget has been marked visible */
  23.     EWL_CALLBACK_HIDE, /**< A widget is marked hidden */
  24.         EWL_CALLBACK_OBSCURE, /**< Widget is offscreen */
  25.         EWL_CALLBACK_REVEAL, /**< Widget returned to screen */
  26.     EWL_CALLBACK_DESTROY, /**< The widget is freed */
  27.     EWL_CALLBACK_DELETE_WINDOW, /**< The window is being closed */
  28.     EWL_CALLBACK_CONFIGURE, /**< The object is being resized */
  29.     EWL_CALLBACK_REPARENT, /**< A widget has been placed in a container */
  30.     EWL_CALLBACK_KEY_DOWN, /**< A key was pressed down */
  31.     EWL_CALLBACK_KEY_UP, /**< A key was released */
  32.     EWL_CALLBACK_MOUSE_DOWN, /**< Mouse was pressed down */
  33.     EWL_CALLBACK_MOUSE_UP, /**< Mouse was released */
  34.     EWL_CALLBACK_MOUSE_MOVE, /**< Mouse was moved */
  35.     EWL_CALLBACK_MOUSE_WHEEL, /**< Mouse wheel scrolled */
  36.     EWL_CALLBACK_MOUSE_IN, /**< Mouse was placed over the widget */
  37.     EWL_CALLBACK_MOUSE_OUT, /**< Mouse was moved away from the widget */
  38.     EWL_CALLBACK_CLICKED, /**< Mouse was pressed and released on a widget */
  39.     EWL_CALLBACK_FOCUS_IN, /**< Widget was selected by mouse or key */
  40.     EWL_CALLBACK_FOCUS_OUT, /**< Widget was deselected by mouse or key */
  41.     EWL_CALLBACK_VALUE_CHANGED, /**< Value in widget changed */
  42.     EWL_CALLBACK_STATE_CHANGED, /**< Alter the state of the appearance */
  43.     EWL_CALLBACK_APPEARANCE_CHANGED, /**< Theme key of widget changed */
  44.     EWL_CALLBACK_WIDGET_ENABLE, /**< Widget has been re-enabled */
  45.     EWL_CALLBACK_WIDGET_DISABLE, /**< Widget no longer takes input */
  46.  
  47.     EWL_CALLBACK_DND_POSITION, /** A DND position event **/
  48.     EWL_CALLBACK_DND_ENTER, /** On enter of a widget **/
  49.     EWL_CALLBACK_DND_LEAVE, /** On exit of a widget **/
  50.     EWL_CALLBACK_DND_DROP, /** Drop event **/
  51.     
  52.     EWL_CALLBACK_MAX /**< Flag to indicate last value */
  53. };
  54.  
  55. typedef enum Ewl_Callback_Type Ewl_Callback_Type;
  56.  
  57. /**
  58.  * @enum Ewl_Event_Notify
  59.  * Flags for the callbacks to indicate interception or notification of the
  60.  * parent.
  61.  */
  62. enum Ewl_Event_Notify
  63. {
  64.     EWL_CALLBACK_NOTIFY_NONE = 0,
  65.     EWL_CALLBACK_NOTIFY_NOTIFY = 1,
  66.     EWL_CALLBACK_NOTIFY_INTERCEPT = 2,
  67.  
  68.     EWL_CALLBACK_TYPE_DIRECT = 4
  69. };
  70.  
  71. typedef enum Ewl_Event_Notify Ewl_Event_Notify;
  72.  
  73. /**
  74.  * @enum Ewl_Orientation
  75.  * The orientation enum is used in a few widgets to specify whether the widget
  76.  * should be laid out in a horizontal or vertical fashion.
  77.  */
  78. enum Ewl_Orientation
  79. {
  80.     EWL_ORIENTATION_HORIZONTAL,
  81.     EWL_ORIENTATION_VERTICAL
  82. };
  83.  
  84. typedef enum Ewl_Orientation Ewl_Orientation;
  85.  
  86. /**
  87.  * @enum Ewl_Flags
  88.  * A variety of flags that affect layout, visibility, scheduling and
  89.  * properties of objects.
  90.  */
  91. enum Ewl_Flags
  92. {
  93.     /*
  94.      * The alignment enumeration allows for specifying how an element is
  95.      * aligned within it's container.
  96.      */
  97.     EWL_FLAG_ALIGN_CENTER = 0, /**< Center align bit */
  98.     EWL_FLAG_ALIGN_LEFT = 0x1, /**< Left align bit */
  99.     EWL_FLAG_ALIGN_RIGHT = 0x2, /**< Right align bit */
  100.     EWL_FLAG_ALIGN_TOP = 0x4, /**< Top align bit */
  101.     EWL_FLAG_ALIGN_BOTTOM = 0x8, /**< Bottom align bit */
  102.  
  103.     /*
  104.      * Fill policy identifies to containers whether child widgets should be
  105.      * stretched to fill available space or keep their current size.
  106.      */
  107.     EWL_FLAG_FILL_NONE = 0, /**< Do not fill or shrink in any direction */
  108.     EWL_FLAG_FILL_HSHRINK = 0x10, /**< Horizontally shrink bit */
  109.     EWL_FLAG_FILL_VSHRINK = 0x20, /**< Horizontally shrink bit */
  110.     EWL_FLAG_FILL_SHRINK =
  111.         EWL_FLAG_FILL_HSHRINK | EWL_FLAG_FILL_VSHRINK, /**< Shrink bit */
  112.     EWL_FLAG_FILL_HFILL = 0x40, /**< Horizontal fill bit */
  113.     EWL_FLAG_FILL_VFILL = 0x80, /**< Vertical fill bit */
  114.     EWL_FLAG_FILL_FILL = EWL_FLAG_FILL_HFILL | EWL_FLAG_FILL_VFILL, /**< Fill bit */
  115.     EWL_FLAG_FILL_ALL = EWL_FLAG_FILL_FILL | EWL_FLAG_FILL_SHRINK, /**< Shrunk and fill bit */
  116.  
  117.     /*
  118.      * Flags identifying the visibility status of the widget
  119.      */
  120.     EWL_FLAG_VISIBLE_HIDDEN = 0,
  121.     EWL_FLAG_VISIBLE_SHOWN = 0x100,
  122.     EWL_FLAG_VISIBLE_REALIZED = 0x200,
  123.     EWL_FLAG_VISIBLE_OBSCURED = 0x400,
  124.     EWL_FLAG_VISIBLE_NOCLIP = 0x800,
  125.  
  126.     /*
  127.      * Behavior modifying properties.
  128.      */
  129.     EWL_FLAG_PROPERTY_RECURSIVE = 0x1000,
  130.     EWL_FLAG_PROPERTY_TOPLEVEL = 0x2000,
  131.     EWL_FLAG_PROPERTY_INTERNAL = 0x4000,
  132.     EWL_FLAG_PROPERTY_BLOCK_TAB_FOCUS = 0x8000,
  133.     EWL_FLAG_PROPERTY_FOCUSABLE = 0x10000,
  134.  
  135.     /*
  136.      * Flags to indicate queues this object is on.
  137.      */
  138.     EWL_FLAG_QUEUED_CSCHEDULED = 0x20000,
  139.     EWL_FLAG_QUEUED_RSCHEDULED = 0x40000,
  140.     EWL_FLAG_QUEUED_DSCHEDULED = 0x80000,
  141.  
  142.     EWL_FLAG_QUEUED_CPROCESS = 0x100000,
  143.     EWL_FLAG_QUEUED_RPROCESS = 0x200000,
  144.     EWL_FLAG_QUEUED_DPROCESS = 0x400000,
  145.  
  146.     /*
  147.      * The state enum specifies the current state of a widget, ie. has it
  148.      * been clicked, does it have the keyboard focus, etc.
  149.      */
  150.     EWL_FLAG_STATE_NORMAL = 0,
  151.     EWL_FLAG_STATE_MOUSE_IN = 0x800000,
  152.     EWL_FLAG_STATE_PRESSED = 0x1000000,
  153.     EWL_FLAG_STATE_FOCUSED = 0x20000000,
  154.     EWL_FLAG_STATE_DND = 0x4000000,
  155.     EWL_FLAG_STATE_DISABLED = 0x8000000,
  156.  
  157.     EWL_FLAG_PROPERTY_DND_AWARE    = 0x10000000,
  158.     EWL_FLAG_PROPERTY_DRAGGABLE    = 0x20000000,
  159.     EWL_FLAG_STATE_DND_WAIT        = 0x40000000,
  160.     
  161. };
  162.  
  163. #define EWL_FLAG_FILL_NORMAL (EWL_FLAG_FILL_FILL)
  164.  
  165. #define EWL_FLAGS_ALIGN_MASK (EWL_FLAG_ALIGN_CENTER | EWL_FLAG_ALIGN_LEFT | \
  166.         EWL_FLAG_ALIGN_RIGHT | EWL_FLAG_ALIGN_TOP | \
  167.         EWL_FLAG_ALIGN_BOTTOM)
  168.  
  169. #define EWL_FLAGS_FILL_MASK (EWL_FLAG_FILL_NONE | EWL_FLAG_FILL_SHRINK | \
  170.         EWL_FLAG_FILL_FILL)
  171.  
  172. #define EWL_FLAGS_VISIBLE_MASK (EWL_FLAG_VISIBLE_HIDDEN | \
  173.         EWL_FLAG_VISIBLE_SHOWN | EWL_FLAG_VISIBLE_REALIZED | \
  174.         EWL_FLAG_VISIBLE_OBSCURED | EWL_FLAG_VISIBLE_NOCLIP)
  175.  
  176. #define EWL_FLAGS_PROPERTY_MASK (EWL_FLAG_PROPERTY_RECURSIVE | \
  177.         EWL_FLAG_PROPERTY_TOPLEVEL | EWL_FLAG_PROPERTY_INTERNAL | \
  178.         EWL_FLAG_PROPERTY_BLOCK_TAB_FOCUS | EWL_FLAG_PROPERTY_FOCUSABLE | \
  179.         EWL_FLAG_PROPERTY_DND_AWARE | EWL_FLAG_PROPERTY_DRAGGABLE )
  180.  
  181. #define EWL_FLAGS_QUEUED_MASK (EWL_FLAG_QUEUED_CSCHEDULED | \
  182.         EWL_FLAG_QUEUED_RSCHEDULED | EWL_FLAG_QUEUED_DSCHEDULED | \
  183.         EWL_FLAG_QUEUED_CPROCESS | EWL_FLAG_QUEUED_RPROCESS | \
  184.         EWL_FLAG_QUEUED_DPROCESS)
  185.  
  186. #define EWL_FLAGS_STATE_MASK (EWL_FLAG_STATE_NORMAL | \
  187.         EWL_FLAG_STATE_MOUSE_IN | EWL_FLAG_STATE_PRESSED | \
  188.         EWL_FLAG_STATE_FOCUSED | EWL_FLAG_STATE_DND | \
  189.         EWL_FLAG_STATE_DISABLED | EWL_FLAG_STATE_DND_WAIT)
  190.  
  191. /**
  192.  * @enum Ewl_Position
  193.  */
  194. enum Ewl_Position
  195. {
  196.     EWL_POSITION_LEFT = 0x1,
  197.     EWL_POSITION_RIGHT = 0x2,
  198.     EWL_POSITION_TOP = 0x4,
  199.     EWL_POSITION_BOTTOM = 0x8
  200. };
  201.  
  202. typedef enum Ewl_Position Ewl_Position;
  203.  
  204. #define EWL_POSITION_MASK (0xf)
  205.  
  206. /**
  207.  * @enum Ewl_Window_Flags
  208.  */
  209. enum Ewl_Window_Flags
  210. {
  211.     EWL_WINDOW_BORDERLESS = 0x1,
  212.     EWL_WINDOW_USER_CONFIGURE = 0x2,
  213.     EWL_WINDOW_GRAB_POINTER = 0x4,
  214.     EWL_WINDOW_GRAB_KEYBOARD = 0x8,
  215.     EWL_WINDOW_OVERRIDE = 0x10
  216. };
  217.  
  218. typedef enum Ewl_Window_Flags Ewl_Window_Flags;
  219.  
  220. /**
  221.  * @enum Ewl_Tree_Node_Flags
  222.  */
  223. enum Ewl_Tree_Node_Flags
  224. {
  225.     EWL_TREE_NODE_NOEXPAND = 0,
  226.     EWL_TREE_NODE_COLLAPSED = 1,
  227.     EWL_TREE_NODE_EXPANDED = 2,
  228. };
  229.  
  230. typedef enum Ewl_Tree_Node_Flags Ewl_Tree_Node_Flags;
  231.  
  232. /**
  233.  * @enum Ewl_Notebook_Flags
  234.  */
  235. enum Ewl_Notebook_Flags
  236. {
  237.     EWL_NOTEBOOK_FLAG_TABS_HIDDEN = 0x10
  238. };
  239.  
  240. typedef enum Ewl_Notebook_Flags Ewl_Notebook_Flags;
  241.  
  242. /**
  243.  * @enum Ewl_ScrollPane_Flags
  244.  */
  245. enum Ewl_ScrollPane_Flags
  246. {
  247.     EWL_SCROLLPANE_FLAG_NONE,
  248.     EWL_SCROLLPANE_FLAG_AUTO_VISIBLE,
  249.     EWL_SCROLLPANE_FLAG_ALWAYS_HIDDEN
  250. };
  251.  
  252. typedef enum Ewl_ScrollPane_Flags Ewl_ScrollPane_Flags;
  253.  
  254. /**
  255.  * @enum Ewl_Filedialog_Type
  256.  */
  257. enum Ewl_Filedialog_Type
  258. {
  259.     EWL_FILEDIALOG_TYPE_OPEN,
  260.     EWL_FILEDIALOG_TYPE_SAVE
  261. };
  262.  
  263. typedef enum Ewl_Filedialog_Type Ewl_Filedialog_Type;
  264.  
  265. enum Ewl_Engine
  266. {
  267.     EWL_ENGINE_SOFTWARE_X11 = 1,
  268.     EWL_ENGINE_GL_X11 = 2,
  269.     EWL_ENGINE_FB = 4,
  270. };
  271.  
  272. typedef enum Ewl_Engine Ewl_Engine;
  273.  
  274. #define EWL_ENGINE_X11 (EWL_ENGINE_SOFTWARE_X11 | EWL_ENGINE_GL_X11)
  275. #define EWL_ENGINE_ALL (EWL_ENGINE_SOFTWARE_X11 | EWL_ENGINE_GL_X11 | \
  276.             EWL_ENGINE_FB)
  277.  
  278. enum Ewl_Key_Modifiers
  279. {
  280.     EWL_KEY_MODIFIER_SHIFT = 0x1,
  281.     EWL_KEY_MODIFIER_CTRL = 0x2,
  282.     EWL_KEY_MODIFIER_ALT = 0x4,
  283.     EWL_KEY_MODIFIER_MOD = 0x8,
  284.     EWL_KEY_MODIFIER_WIN = 0x10,
  285. };
  286.  
  287. typedef enum Ewl_Key_Modifiers Ewl_Key_Modifiers;
  288.  
  289. enum Ewl_Stock_Type
  290. {
  291.     EWL_STOCK_APPLY = 0,
  292.     EWL_STOCK_ARROW_DOWN,
  293.     EWL_STOCK_ARROW_LEFT,
  294.     EWL_STOCK_ARROW_RIGHT,
  295.     EWL_STOCK_ARROW_UP,
  296.     EWL_STOCK_CANCEL,
  297.     EWL_STOCK_FASTFORWARD,
  298.     EWL_STOCK_HOME,
  299.     EWL_STOCK_OK,
  300.     EWL_STOCK_OPEN,
  301.     EWL_STOCK_PAUSE,
  302.     EWL_STOCK_PLAY,
  303.     EWL_STOCK_QUIT,
  304.     EWL_STOCK_REWIND,
  305.     EWL_STOCK_SAVE,
  306.     EWL_STOCK_STOP,
  307.     EWL_STOCK_NONE
  308. };
  309. typedef enum Ewl_Stock_Type Ewl_Stock_Type;
  310.  
  311. /**
  312.  * @enum Ewl_Color_Pick_Mode
  313.  */
  314. enum Ewl_Color_Mode 
  315. {
  316.     EWL_COLOR_MODE_RGB_RED,
  317.     EWL_COLOR_MODE_RGB_GREEN,
  318.     EWL_COLOR_MODE_RGB_BLUE,
  319.     EWL_COLOR_MODE_HSV_HUE,
  320.     EWL_COLOR_MODE_HSV_SATURATION,
  321.     EWL_COLOR_MODE_HSV_VALUE
  322. };
  323. typedef enum Ewl_Color_Mode Ewl_Color_Mode;
  324.  
  325. enum Ewl_Spectrum_Type
  326. {
  327.     EWL_SPECTRUM_TYPE_SQUARE,
  328.     EWL_SPECTRUM_TYPE_VERTICAL
  329. };
  330. typedef enum Ewl_Spectrum_Type Ewl_Spectrum_Type;
  331.  
  332. enum Ewl_Text_Style 
  333. {
  334.     EWL_TEXT_STYLE_NONE = 0x00,
  335.     EWL_TEXT_STYLE_UNDERLINE = 0x01,
  336.     EWL_TEXT_STYLE_DOUBLE_UNDERLINE = 0x02,
  337.     EWL_TEXT_STYLE_STRIKETHROUGH = 0x04,
  338.     EWL_TEXT_STYLE_SHADOW = 0x08,
  339.     EWL_TEXT_STYLE_SOFT_SHADOW = 0x10,
  340.     EWL_TEXT_STYLE_FAR_SHADOW = 0x20,
  341.     EWL_TEXT_STYLE_OUTLINE = 0x40,
  342.     EWL_TEXT_STYLE_GLOW = 0x80
  343. };
  344. typedef enum Ewl_Text_Style Ewl_Text_Style;
  345.  
  346. enum Ewl_Text_Trigger_Type 
  347. {
  348.     EWL_TEXT_TRIGGER_TYPE_NONE,
  349.     EWL_TEXT_TRIGGER_TYPE_SELECTION,
  350.     EWL_TEXT_TRIGGER_TYPE_TRIGGER
  351. };
  352. typedef enum Ewl_Text_Trigger_Type Ewl_Text_Trigger_Type;
  353.  
  354. enum Ewl_Attach_Type 
  355. {
  356.     EWL_ATTACH_TYPE_TOOLTIP,
  357.     EWL_ATTACH_TYPE_COLOR,
  358.     EWL_ATTACH_TYPE_NAME
  359. };
  360. typedef enum Ewl_Attach_Type Ewl_Attach_Type;
  361.  
  362. enum Ewl_Attach_Data_Type 
  363. {
  364.     EWL_ATTACH_DATA_TYPE_TEXT,
  365.     EWL_ATTACH_DATA_TYPE_WIDGET,
  366.     EWL_ATTACH_DATA_TYPE_OTHER
  367. };
  368. typedef enum Ewl_Attach_Data_Type Ewl_Attach_Data_Type;
  369.  
  370. enum Ewl_Media_Module_Type
  371. {
  372.     EWL_MEDIA_MODULE_XINE,
  373.     EWL_MEDIA_MODULE_GSTREAMER
  374. };
  375. typedef enum Ewl_Media_Module_Type Ewl_Media_Module_Type;
  376.  
  377. enum Ewl_Tree_Mode
  378. {
  379.     EWL_TREE_MODE_NONE,
  380.     EWL_TREE_MODE_SINGLE,
  381.     EWL_TREE_MODE_MULTI
  382. };
  383.  
  384. typedef enum Ewl_Tree_Mode Ewl_Tree_Mode;
  385.  
  386. enum Ewl_Text_Context_Mask
  387. {
  388.     EWL_TEXT_CONTEXT_MASK_NONE = 0x00,
  389.     EWL_TEXT_CONTEXT_MASK_FONT = 0x01,
  390.     EWL_TEXT_CONTEXT_MASK_SIZE = 0x02,
  391.     EWL_TEXT_CONTEXT_MASK_STYLES = 0x04,
  392.     EWL_TEXT_CONTEXT_MASK_ALIGN = 0x08,
  393.     EWL_TEXT_CONTEXT_MASK_WRAP = 0x10,
  394.     EWL_TEXT_CONTEXT_MASK_COLOR = 0x20,
  395.     EWL_TEXT_CONTEXT_MASK_BG_COLOR = 0x40,
  396.     EWL_TEXT_CONTEXT_MASK_GLOW_COLOR = 0x80,
  397.     EWL_TEXT_CONTEXT_MASK_OUTLINE_COLOR = 0x100,
  398.     EWL_TEXT_CONTEXT_MASK_SHADOW_COLOR = 0x200,
  399.     EWL_TEXT_CONTEXT_MASK_STRIKETHROUGH_COLOR = 0x400,
  400.     EWL_TEXT_CONTEXT_MASK_UNDERLINE_COLOR = 0x800,
  401.     EWL_TEXT_CONTEXT_MASK_DOUBLE_UNDERLINE_COLOR = 0x1000
  402. };
  403. typedef enum Ewl_Text_Context_Mask Ewl_Text_Context_Mask;
  404.  
  405. enum Ewl_Icon_Type
  406. {
  407.     EWL_ICON_TYPE_SHORT,
  408.     EWL_ICON_TYPE_LONG
  409. };
  410. typedef enum Ewl_Icon_Type Ewl_Icon_Type;
  411.  
  412. enum Ewl_Freebox_Layout_Type
  413. {
  414.     EWL_FREEBOX_LAYOUT_MANUAL,
  415.     EWL_FREEBOX_LAYOUT_COMPARATOR,
  416.     EWL_FREEBOX_LAYOUT_AUTO
  417. };
  418. typedef enum Ewl_Freebox_Layout_Type Ewl_Freebox_Layout_Type;
  419.  
  420. /**
  421.  * @}
  422.  */ 
  423. #endif                /* __EWL_ENUMS_H__ */
  424.  
  425.